<script setup lang="ts">
import { onLaunch } from '@dcloudio/uni-app'
import { debugWarn } from '@tuniao/tnui-vue3-uniapp/utils'
import { CHANNEL, MP_API_URL, SYSTEM_CONFIG, USER_TOKEN } from '@/api/config.js'

// 处理 token 更新的方法
const handleTokenUpdate = (event: CustomEvent) => {
  try {
    const token = event.detail?.token || event.detail;
    console.log('收到客户端传来的token:', token);

    if (token) {
      // 存储 token 到本地
      uni.setStorageSync(USER_TOKEN, token);

      // 这里可以添加其他逻辑，比如更新全局状态、验证 token 等
      // ...
    }
  } catch (error) {
    console.error('处理token更新出错:', error);
  }
};

onLaunch(() => {
  console.log('----多多养生圈----')
  // uni.setStorageSync(USER_TOKEN, 'b1e36e8e-9019-42ee-b721-bae743eb8619');
  // #ifdef H5
  window.addEventListener('flutterTokenUpdate', handleTokenUpdate,);
  // #endif

  uni.request({
    url: `${MP_API_URL}system.System/config`,
    method: 'GET', //请求方式，必须为大写
    success: (res) => {
      console.log('systemConfig=>', res.data.data)
      if (res.data.code == 1) {
        uni.setStorageSync(SYSTEM_CONFIG, res.data.data)
      }
    },
  })

  // 加载字体
  uni.loadFontFace({
    family: 'tuniao-xiaowei',
    source:
      'url("https://resource.tuniaokj.com/images/vue3-template/template2-website/font/tuniao-xiaowei.ttf")',
    fail: (err) => {
      debugWarn('load-font', `加载字体失败: ${err}`)
      console.error(err)
    },
  })

  // #ifdef APP-PLUS
  uni.setStorageSync(CHANNEL, 'APP')
  // #endif

  // #ifdef H5
  uni.setStorageSync(CHANNEL, 'H5')
  // #endif

  // #ifdef MP-WEIXIN
  uni.setStorageSync(CHANNEL, 'MP-WEIXIN')
  //更新检测
  if (wx.canIUse('getUpdateManager')) {
    const updateManager = wx.getUpdateManager()
    updateManager &&
      updateManager.onCheckForUpdate((res: { hasUpdate: any }) => {
        if (res.hasUpdate) {
          updateManager.onUpdateReady(() => {
            uni.showModal({
              title: '更新提示',
              content: '新版本已经准备就绪，是否需要重新启动应用？',
              success: (res) => {
                if (res.confirm) {
                  uni.clearStorageSync() // 更新完成后刷新storage的数据
                  updateManager.applyUpdate()
                }
              },
            })
          })

          updateManager.onUpdateFailed(() => {
            uni.showModal({
              title: '已有新版本上线',
              content: '小程序自动更新失败，请删除该小程序后重新搜索打开哟~~~',
              showCancel: false,
            })
          })
        } else {
          //没有更新
        }
      })
  } else {
    uni.showModal({
      title: '提示',
      content: '当前微信版本过低，无法使用该功能，请更新到最新的微信后再重试。',
      showCancel: false,
    })
  }
  // #endif
})
</script>
<style lang="scss">
/*每个页面公共css */
@import '@tuniao/tn-style/dist/uniapp/index.css';
</style>
